const {ChatModel} = require('../db/models')

module.exports = function (server) {
  // 服务端产生io
  const io = require('socket.io')(server)

  // 监视客户端与服务器的连接
  io.on('connection', function (socket) {
        console.log('有一个客户端连接上了服务器')
        // 绑定监听,接受客户端发送过来的消息
        socket.on('sendMsg', function ({from, to, content}) {
            console.log('服务器接收到客户端发送的消息', {from, to, content})
            // 处理数据 (保存消息)
            // 准备chatMsg对象的相关数据
            const chat_id = [from, to].sort().join('_')       // from_to  或者   to_from
            const create_time = Date.now()

            new ChatModel({from, to, content, chat_id, create_time}).save(function (error, chatMsg) {
                // 既要给 from 发送数据  也要给 to 发送数据
                // 向客户端发送数据   -- 向所有连接的客户端发送  这样的效率不是特别高
                // 这样的话  跟我没有关系的数据 浏览器端也会收到, 但是要处理,不能显示
                io.emit('receiveMsg', chatMsg)

            })



        })

  })

}
